<ui:composition template="/WEB-INF/templates/layout.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui"
                >
    <ui:define name="content">
        <h:form id="formproveedor">
            <p:growl autoUpdate="true"/>
            <p:panel header="Gestion de Proveedores">
                <p:tabView id="tabView"  dynamic="false"> 
                    <p:tab id="tba1" title="Registro de Proveedores"> 
                        <h:panelGrid columns="4" id="idproveedorpanel">
                            <p:outputLabel value="CIF" for="proveedorcif" />
                            <p:inputText maxlength="9" size="35" value="#{proveedorController.proveedor.cif}" id="proveedorcif" required="true" requiredMessage='El campo "CIF" es requerido'/>
                            <p:outputLabel  value="Nombre" for="proveedornombre"/>
                            <p:inputText maxlength="30" size="35" value="#{proveedorController.proveedor.nombres}" id="proveedornombre" required="true" requiredMessage='El campo "Nombre" es requerido'/>
                            <p:outputLabel value="Direcion" for="proveedordireccion" />
                            <p:inputText maxlength="30" size="35" value="#{proveedorController.proveedor.direccion}" id="proveedordireccion" required="true" requiredMessage='El campo "Direccion" es requerido'/>
                            <p:outputLabel value="Poblacion" for="proveedorpob" />
                            <p:inputText size="35" value="#{proveedorController.proveedor.poblacion}" id="proveedorpob" required="true" requiredMessage='El campo "Poblacion" es requerido'/>
                            <p:outputLabel value="Provincia" for="proveedorprovincia" />
                            <p:selectOneMenu style="width: 249px" value="#{proveedorController.proveedor.provincia}" id="proveedorprovincia" required="true" requiredMessage='El campo "Provincia" es requerido'>
                                <f:selectItem itemLabel="Seleccione" itemValue=""/>
                                <f:selectItem itemValue="ACORUNA" itemLabel="ACORUÑA"/>
                                <f:selectItem itemValue="ALAVA" itemLabel="ALAVA"/>
                                <f:selectItem itemValue="ALBACETE" itemLabel="ALBACETE"/>
                                <f:selectItem itemValue="ALICANTE" itemLabel="ALMERIA"/>
                                <f:selectItem itemValue="ASTURIAS" itemLabel="ASTURIAS"/>
                                <f:selectItem itemValue="AVILA" itemLabel="AVILA"/>
                                <f:selectItem itemValue="BASAJOZ" itemLabel="BADAJOZ"/>
                                <f:selectItem itemValue="BARCELONA" itemLabel="BARCELONA"/>
                                <f:selectItem itemValue="BURGOS" itemLabel="BURGOS"/>
                                <f:selectItem itemValue="CACERES" itemLabel="CACERES"/>
                                <f:selectItem itemValue="CADIZ" itemLabel="CADIZ"/>
                                <f:selectItem itemValue="CANTABRIA" itemLabel="CANTABRIA"/>
                                <f:selectItem itemValue="CASTELLON" itemLabel="CASTELLON"/>
                                <f:selectItem itemValue="CEUTA" itemLabel="CEUTA"/>
                                <f:selectItem itemValue="CIUDADREAL" itemLabel="CIUDAD REAL"/>
                                <f:selectItem itemValue="CORDOBA" itemLabel="CORDOBA"/>
                                <f:selectItem itemValue="CUENCA" itemLabel="CUENCA"/>
                                <f:selectItem itemValue="GIRONA" itemLabel="GIRONA"/>
                                <f:selectItem itemValue="GRANADA" itemLabel="GRANADA"/>
                                <f:selectItem itemValue="GUADALAJARA" itemLabel="GUADALAJAA"/>
                                <f:selectItem itemValue="GUIPUZCAO" itemLabel="GUIPUZCAO"/>
                                <f:selectItem itemValue="HUELVA" itemLabel="HHUELVA"/>
                                <f:selectItem itemValue="HUESCA" itemLabel="HUESCA"/>
                            </p:selectOneMenu>
                            <p:outputLabel value="Cod. Postal" for="proveedorpostal" />
                            <p:inputMask maxlength="5" mask="9?999999999999999" placeHolder="" size="35" value="#{proveedorController.proveedor.codpostal}" id="proveedorpostal" required="true" requiredMessage='El campo "Cod. Postal" es requerido'/>
                            <p:outputLabel value="Telefono" for="proveedortelefono" />
                            <p:inputMask maxlength="9" size="35" value="#{proveedorController.proveedor.telefono}" mask="999999999" id="proveedortelefono" required="true" requiredMessage='El campo "Telefono" es requerido'/> 
                            <p:outputLabel value="Telefono 2" for="proveedortelefonoS" />
                            <p:inputMask maxlength="9" size="35" value="#{proveedorController.proveedor.telefonoS}" mask="999999999" id="proveedortelefonoS" required="true" requiredMessage='El campo "Telefono 2" es requerido'/> 
                            <h:outputLabel value="Estado" />
                            <p:selectOneMenu style="width: 249px" value="#{proveedorController.proveedor.estado}">  
                                <f:selectItem itemLabel="Activo" itemValue="Activo" />  
                                <f:selectItem itemLabel="Inactivo" itemValue="Inactivo" />  
                            </p:selectOneMenu>
                            <p:outputPanel/>
                            <p:outputPanel/>
                            <p:commandButton process=":formproveedor:tabView:idproveedorpanel :formproveedor:tabView:idtableproveedor" update=":formproveedor:tabView:idproveedorpanel :formproveedor:tabView:idtableproveedor" value="Guardar" actionListener="#{proveedorController.save()}"/>
                            <p:commandButton value="Cancelar" process="@this" actionListener="#{proveedorController.init()}" update=":formproveedor:tabView:idproveedorpanel"/>
                        </h:panelGrid>
                        <p:panel  header="Lista de Proveedores">
                            <h:panelGrid columns="3">
                                <h:inputText id="idbuscarprov" size="50" value="#{proveedorController.valorBusqueda}"/>
                                <p:watermark for="idbuscarprov" value="Digite CIF o Nombre " /> 
                                <p:commandButton process="idbuscarprov @this" value="Buscar" update=":formproveedor:tabView:idtableproveedor" action="#{proveedorController.search()}"/>
                            </h:panelGrid>
                            <p:dataTable id="idtableproveedor" paginator="true" rows="5" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,15" value="#{proveedorController.listaProveedor}" var="varproveedor">
                                <p:column headerText="Cif">
                                    #{varproveedor.cif}
                                </p:column>
                                <p:column headerText="Nombre">
                                    #{varproveedor.nombres}
                                </p:column>
                                <p:column headerText="Direccion">
                                    #{varproveedor.direccion}
                                </p:column>
                                <p:column headerText="Provincia">
                                    #{varproveedor.provincia}
                                </p:column>
                                <p:column headerText="Telefono">
                                    #{varproveedor.telefono}
                                </p:column>
                                <p:column headerText="Seccion">
                                    #{varproveedor.seccion.nombre}
                                </p:column>
                                <p:column headerText="Estado">
                                    #{varproveedor.estado}
                                </p:column>
                                <p:column headerText="Acciones">
                                    <p:commandButton value="Editar" process="@this :formproveedor:tabView:idtableproveedor" update=":formproveedor:tabView:idproveedorpanel">
                                        <f:setPropertyActionListener target="#{proveedorController.proveedor}" value="#{varproveedor}"/>
                                    </p:commandButton>
                                </p:column>
                            </p:dataTable>
                        </p:panel>
                    </p:tab>
                    <p:tab title="Facturar">
                        <h:panelGrid columns="4" id="idformfactura">
                            <p:outputLabel for='idproveedorfacturafecha' value="Fecha:"/>
                            <p:outputPanel>
                                <p:calendar id="idproveedorfacturafecha" required="true" value="#{proveedorController.facturaProveedor.fecha}" mode="popup" navigator="true" showButtonPanel="true" showOn="button" requiredMessage='El campo "Fecha" es requerido'/>
                                <p:watermark for="idproveedorfacturafecha" value="dd/mm/aa" /> 
                            </p:outputPanel>
                            <p:outputLabel for="idproveedorfacturacuenta" value="Proveedor:"/>
                            <p:outputPanel>
                                <p:inputText size="80" value="#{proveedorController.searchProveedor}" id="idsearchproveedor"/>
                                <p:watermark for="idsearchproveedor" value="Digite CIF o Nombre " /> 
                                <p:commandButton process="@this :formproveedor:tabView:idsearchproveedor" update=":formproveedor:idtablelistproveedor :formproveedor:dialogproveedor" actionListener="#{proveedorController.buscarListaProveedor()}" icon="search"/>
                            </p:outputPanel>
                            <p:outputLabel for="idproveedorfacturacuenta" value="Cuenta:"/>
                            <p:inputText id="idproveedorfacturacuenta" value="#{proveedorController.facturaProveedor.cuenta}" required="true" requiredMessage="El campo 'Cuenta' es requerido"/>
                            <p:outputLabel for='idproveedorfacturadescripcion' value="Descripcion:"/>
                            <p:inputText id="idproveedorfacturadescripcion" value="#{proveedorController.facturaProveedor.descripcion}" required="true" requiredMessage="El campo 'Cuenta' es requerido"/>
                            <p:outputLabel for='idproveedorfacturadocumento' value="Documento:"/>
                            <p:inputText id="idproveedorfacturadocumento" value="#{proveedorController.facturaProveedor.documento}" required="true" requiredMessage="El campo 'Cuenta' es requerido"/>
                            <p:outputLabel for="idproveedorfacturaimporta" value="Importe:"/>
                            <p:inputText id="idproveedorfacturaimporta" value="#{proveedorController.facturaProveedor.importe}" required="true" requiredMessage="El campo 'Cuenta' es requerido"/>
                            <p:commandButton value="Guardar" process="@this :formproveedor:tabView:idformfactura" update=":formproveedor:tabView:idtablefacturaproveedor :formproveedor:tabView:idformfactura" actionListener="#{proveedorController.saveFacturaProveedor()}"/>
                            <p:commandButton value="Cancelar" process="@this" actionListener="#{proveedorController.init()}" update=":formproveedor:tabView:idformfactura"/>

                        </h:panelGrid>
                        <p:panel header="Lista de facturas">
                            <h:panelGrid columns="8">
                                <h:inputText id="idbuscarfactura" value="#{proveedorController.valorBusquedaFactura}"/>
                                <p:watermark for="idbuscarfactura" value="Digite CIF o Nombre " /> -
                                <h:outputLabel value="Fecha desde:"/>
                                <p:outputPanel>
                                    <p:calendar id="idfechadesde" value="#{proveedorController.fechadesde}" mode="popup" navigator="true" showButtonPanel="true" showOn="button"/>
                                    <p:watermark for="idfechadesde" value="dd/mm/aa" /> 
                                </p:outputPanel>
                                <h:outputLabel value="Fecha Hasta:"/>
                                <p:outputPanel>
                                    <p:calendar id="idfechahasta" value="#{proveedorController.fechahasta}" mode="popup" navigator="true" showButtonPanel="true" showOn="button"/>
                                    <p:watermark for="idfechahasta" value="dd/mm/aa" /> 
                                </p:outputPanel>
                                <p:commandButton process=":formproveedor:tabView:idfechadesde :formproveedor:tabView:idbuscarfactura :formproveedor:tabView:idfechahasta @this" value="Buscar" update=":formproveedor:tabView:idtablefacturaproveedor" action="#{proveedorController.searchFacturaProveedor()}"/>
                            </h:panelGrid>
                            <p:dataTable id="idtablefacturaproveedor" paginator="true" rows="5" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,15" value="#{proveedorController.listaFacturaProv}" var="facturaproveedorvar">
                                <p:column headerText="Apunte">
                                    #{facturaproveedorvar.id}
                                </p:column>
                                <p:column headerText="Fecha">
                                    #{proveedorController.formatFecha(facturaproveedorvar.fecha)}
                                </p:column>
                                <p:column headerText="CIF">
                                    #{facturaproveedorvar.proveedor.cif}
                                </p:column>
                                <p:column headerText="Nombre">
                                    #{facturaproveedorvar.proveedor.nombres}
                                </p:column>
                                <p:column headerText="Cuenta">
                                    #{facturaproveedorvar.cuenta}
                                </p:column>
                                <p:column headerText="Descripcion">
                                    #{facturaproveedorvar.descripcion}
                                </p:column>
                                <p:column headerText="Documento">
                                    #{facturaproveedorvar.documento}
                                </p:column>
                                <p:column headerText="Importe">
                                    #{facturaproveedorvar.importe}
                                </p:column>
                                <p:column headerText="Proveedor">
                                    #{facturaproveedorvar.proveedor.nombres}
                                </p:column>
                                <p:column headerText="Imprimir">
                                    <p:commandButton immediate="true" icon="ui-icon-circle-check" action="#{proveedorController.prueba(facturaproveedorvar.proveedor.cif, facturaproveedorvar.fecha, facturaproveedorvar.fecha)}" />
                                    <p:commandButton immediate="true" process="@this" id="downloadLink" value="Descargar" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop)"   
                                                     icon="ui-icon-circle-arrow-s">  
                                        <p:fileDownload value="#{proveedorController.dc}" />  
                                    </p:commandButton> 
                                </p:column>
                            </p:dataTable>
                        </p:panel>
                    </p:tab>
                    <p:tab title="Reporte Factura">
                        <h:panelGrid columns="7">
                            <p:calendar readonlyInput="true" mode="popup" navigator="true" showButtonPanel="true" showOn="button" value="#{proveedorController.fechaI}"  id="fechaI" />
                            <p:watermark for="fechaI" value="Fecha Desde(dd/mm/aa)" /> 
                            <p:calendar readonlyInput="true" mode="popup" navigator="true" showButtonPanel="true" showOn="button" value="#{proveedorController.fechaf}"  id="fechaF" />
                            <p:watermark for="fechaF" value="Fecha Hasta(dd/mm/aa)" />
                            <p:commandButton update=":formproveedor:tabView:idtablefacturaproveedor2" process="fechaI fechaF @this" icon="search" action="#{proveedorController.searchFacturaProveedor2()}" />
                            <p:commandButton immediate="true" process="@this" id="downloadLink" value="Descargar" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop)"   
                                             icon="ui-icon-circle-arrow-s">  
                                <p:fileDownload value="#{proveedorController.dc}" />  
                            </p:commandButton> 
                        </h:panelGrid>
                           <p:dataTable id="idtablefacturaproveedor2" paginator="true" rows="5" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,15" value="#{proveedorController.listaFacturaProv2}" var="facturaproveedorvar2">
                                <p:column headerText="Apunte">
                                    #{facturaproveedorvar2.id}
                                </p:column>
                                <p:column headerText="Fecha">
                                    #{proveedorController2.formatFecha(facturaproveedorvar.fecha)}
                                </p:column>
                                <p:column headerText="CIF">
                                    #{facturaproveedorvar2.proveedor.cif}
                                </p:column>
                                <p:column headerText="Nombre">
                                    #{facturaproveedorvar2.proveedor.nombres}
                                </p:column>
                                <p:column headerText="Cuenta">
                                    #{facturaproveedorvar2.cuenta}
                                </p:column>
                                <p:column headerText="Descripcion">
                                    #{facturaproveedorvar2.descripcion}
                                </p:column>
                                <p:column headerText="Documento">
                                    #{facturaproveedorvar2.documento}
                                </p:column>
                                <p:column headerText="Importe">
                                    #{facturaproveedorvar2.importe}
                                </p:column>
                                <p:column headerText="Proveedor">
                                    #{facturaproveedorvar2.proveedor.nombres}
                                </p:column>
                            </p:dataTable>
                    </p:tab>
                </p:tabView>
            </p:panel>
            <p:dialog id="dialogproveedor"
                      widgetVar="componentDiagProveedor"
                      minWidth="500"
                      visible="#{proveedorController.renderTableproveedor}">
                <p:dataTable id='idtablelistproveedor' value="#{proveedorController.listProveedorSelect}" var="proveedorvar">
                    <p:column headerText="Cif">
                        #{proveedorvar.cif}
                    </p:column>
                    <p:column headerText="Nombre">
                        #{proveedorvar.nombres}
                    </p:column>
                    <p:column headerText="Telefono">
                        #{proveedorvar.telefono}
                    </p:column>
                    <p:column headerText="Accion">
                        <p:commandLink value="Seleccionar" 
                                       onclick="componentDiagProveedor.hide();" 
                                       process="@this"
                                       actionListener="#{proveedorController.onRowSelectProveedor(proveedorvar)}"
                                       update=":formproveedor:tabView:idsearchproveedor :formproveedor:dialogproveedor"  >
                        </p:commandLink>
                    </p:column>
                </p:dataTable>
            </p:dialog>
        </h:form>
    </ui:define>
</ui:composition>
